package com.recSystem.Service;

import com.recSystem.Entity.DO.UserDO;
import com.baomidou.mybatisplus.extension.service.IService;
import com.recSystem.Entity.DTO.*;
import com.recSystem.Entity.DTO.Param.*;
import com.recSystem.Entity.POJO.HttpResponse;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader;

import java.util.List;

public interface UserService extends IService<UserDO> {
    HttpResponse<UserRegisterDTO> addUser(UserRegisterParam user);

    HttpResponse<UserLoginDTO> authenticateUser(UserLoginParam user);

    HttpResponse<DataUserDTO> getUserInfo(String token);

    HttpResponse<DataErrorsDTO> modifyUserInfo(UserModifyParam user, String token);

    HttpResponse<UserBrowsingPageDTO> getBrowsing(UserBehaviorParam userFavoriteParam, String token);

    HttpResponse<UserFavoritePageDTO> getFavorite(UserBehaviorParam user, String token);

    HttpResponse userLogOut();

    HttpResponse modifyUserPassword(UserChangePasswordParam param, String token);

    HttpResponse validateUsername(ValidateParam param);

    HttpResponse validateEmail(ValidateParam param);

    HttpResponse test(int originUserId);

    HttpResponse deleteSearch(SearchIdParam param, String token);

    HttpResponse addSearch(UserSearchParam param, String token);

    HttpResponse<UserSearchPageDTO> getSearch(UserBehaviorParam userInterestParam, String token);

    HttpResponse modifyInterest(AuthorInterestParam param, String token);

    HttpResponse<UserInterestPageDTO> getInterest(UserBehaviorParam param, String token);

    HttpResponse<List> getIdentities();
}
